package com.xiaoyy.app.api.common.vo.person;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoyy.core.common.vo.BaseVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 人员基础信息
 * */
@Data
public class PersonInfoVO extends BaseVO {
    @ApiModelProperty(value = "人员id")
    private Long personId;

    @ApiModelProperty(value = "人员编码")
    private String personCode;

    @ApiModelProperty(value = "姓名")
    private String fullName;

    @ApiModelProperty(value = "曾用名")
    private String beforeName;

    @ApiModelProperty(value = "证件类型")
    private String cardType;
    @ApiModelProperty(value = "证件类型 中文")
    private String cardTypeName;

    @ApiModelProperty(value = "证件号码")
    private String idcard;

    @ApiModelProperty(value = "性别")
    private String sex;
    @ApiModelProperty(value = "性别 中文")
    private String sexName;
    @ApiModelProperty(value = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date birthday;

    @ApiModelProperty(value = "证件有效期 开始")
    private Integer cardDateStart;

    @ApiModelProperty(value = "证件有效期 结束")
    private Integer cardDateEnd;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "手机")
    private String cellphone;

    @ApiModelProperty(value = "微信")
    private String weixin;

    @ApiModelProperty(value = "钉钉号")
    private String dingding;

    @ApiModelProperty(value = "国家/地区")
    private String country;

    @ApiModelProperty(value = "人员类型 个人身份")
    private String personType;
    @ApiModelProperty(value = "人员类型 个人身份 中文")
    private String personTypeName;
    @ApiModelProperty(value = "民族")
    private String nation;
    @ApiModelProperty(value = "民族 中文")
    private String nationName;
    @ApiModelProperty(value = "宗教信仰")
    private String faith;
    @ApiModelProperty(value = "宗教信仰 中文")
    private String faithName;
    @ApiModelProperty(value = "户口性质")
    private String residenceType;
    @ApiModelProperty(value = "户口性质 中文")
    private String residenceTypeName;
    @ApiModelProperty(value = "婚姻状态")
    private String marriageStatus;
    @ApiModelProperty(value = "婚姻状态 中文")
    private String marriageStatusName;
    @ApiModelProperty(value = "政治面貌")
    private String politicalInfo;
    @ApiModelProperty(value = "政治面貌 中文")
    private String politicalInfoName;

    @ApiModelProperty(value = "户籍地址 省")
    private String householdProvinceKey;

    @ApiModelProperty(value = "户籍地址 省 中文")
    private String householdProvinceValue;

    @ApiModelProperty(value = "户籍地址 市")
    private String householdCityKey;

    @ApiModelProperty(value = "户籍地址 市 中文")
    private String householdCityValue;

    @ApiModelProperty(value = "户籍地址 县")
    private String householdCountyKey;

    @ApiModelProperty(value = "户籍地址 县 中文")
    private String householdCountyValue;

    @ApiModelProperty(value = "户籍地址详情")
    private String householdDetail;

    @ApiModelProperty(value = "常住地 省")
    private String addressProvinceKey;

    @ApiModelProperty(value = "常住地 省 中文")
    private String addressProvinceValue;

    @ApiModelProperty(value = "常住地 市")
    private String addressCityKey;

    @ApiModelProperty(value = "常住地 市 中文")
    private String addressCityValue;

    @ApiModelProperty(value = "常住地 县")
    private String addressCountyKey;

    @ApiModelProperty(value = "常住地 县 中文")
    private String addressCountyValue;

    @ApiModelProperty(value = "常住地详细信息")
    private String addressDetail;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "人员照片地址")
    private String photo;

    @ApiModelProperty(value = "户籍地址 乡镇街道")
    private String householdStreetKey;

    @ApiModelProperty(value = "户籍地址 乡镇街道 中文")
    private String householdStreetValue;

    @ApiModelProperty(value = "常住地 乡镇街道 ")
    private String addressStreetKey;

    @ApiModelProperty(value = "常住地 乡镇街道  中文")
    private String addressStreetValue;

    @ApiModelProperty(value = "户籍地址 村社区")
    private String householdVillageKey;

    @ApiModelProperty(value = "户籍地址 村社区 中文")
    private String householdVillageValue;

    @ApiModelProperty(value = "常住地 村社区 ")
    private String addressVillageKey;

    @ApiModelProperty(value = "常住地 村社区  中文")
    private String addressVillageValue;

    @ApiModelProperty(value = "联系电话")
    private String phone;

    @ApiModelProperty(value = "身高 cm")
    private BigDecimal height;

    @ApiModelProperty(value = "体重 kg")
    private BigDecimal weight;

    @ApiModelProperty(value = "血型")
    private String bloodType;

    @ApiModelProperty(value = "职业、工种")
    private String occupation;
    @ApiModelProperty(value = "职业、工种 中文")
    private String occupationName;
    @ApiModelProperty(value = "健康状况与伤残情况")
    private String healthType;
    @ApiModelProperty(value = "健康状况与伤残情况 中文")
    private String healthTypeName;
    @ApiModelProperty(value = "入党或入团时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date joinOrgTime;

    @ApiModelProperty(value = "党内职务")
    private String partyPosts;
    @ApiModelProperty(value = "党内职务 中文")
    private String partyPostsName;
    @ApiModelProperty(value = "档案出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date archivesBirthday;

    @ApiModelProperty(value = "外文名")
    private String foreignName;

    @ApiModelProperty(value = "参加工作时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date workedTime;

    @ApiModelProperty(value = "人员状态")
    private String personStatus;
    @ApiModelProperty(value = "人员状态 中文")
    private String personStatusName;

    @ApiModelProperty(value = "专长")
    private String expertise;

    @ApiModelProperty(value = "爱好")
    private String hobby;
}
